|
Application targeting
for mobile devices
requires to consider
the constraints
these devices
pose. Mass market
devices are low
end. They have
limited processing
capabilities and
have low runtime
memory.
After going through
a series of changes
as proof of concept
on smartphones,
when the customer
wanted to productize
the concept -
there were new
challenges thrown
to make the application
adapt and work
in a low end handset.
On the basis of
discussions held
with different
device vendors
following targets
were set -
a. Adapting the
software to real
handset platforms
b. Optimizing
the code size
and runtime memory
usage to acceptable
levels
The approach taken
was based on the
experience on
different smartphone
ports and knowledge
of handset platforms.
This range varied
from Windows CE
and Symbian to
Riviera.
Adaptation
----------
The approach was
to identify the
platform dependent
aspects of application
behavior. The
most critical
were identified
to be GPRS, networking
and audio subsystems.
Other dependencies
more or less have
uniform behavior
on all the platforms.
Optimization
------------
Optimization had
two aspects -
one in terms of
memory usage and
another in terms
of performance.
Compile time memory
reduction was
done through careful
code review and
by following compiler
optimization tips
provided by different
target chipset
based compilers
such as ARM.
Runtime memory
optimization had
a bearing on system
performance and
GPRS conditions.
However, due to
limited availability
of memory it had
to be brought
to optimal levels
with acceptable
performance levels.
CPU performance
and resource usage
impacts the battery
usage of the handset.
Hence application
required modifications
to minimize the
resource usage
and reduce unwanted
CPU cycles.
Major
Challenges
----------------
Major challenges
in the project
were
* understanding
of programming
environments on
various handsets.
* understanding
system behavior
for networking
and audio subsystems.
* anticipating
porting problems
for a totally
different handset.
* memory optimization
versus application
performance.
Learning
--------
* Understanding
of constrained
programming environments.
* Typical porting
issues for applications
on handsets.
* Performance
tuning.
|